import { getAgentSignature } from "@/api/common.js";

export function initAgentConfig({ jsApiList }) {
  return new Promise((resolve, reject) => {
    const param = {
      url: window.location.href.split("#")[0],
    };
    const list = jsApiList ? ["checkJsApi", ...jsApiList] : [];

    // 获取config参数
    getAgentSignature(param)
      .then((res) => {
        // 初始化config
        wx.agentConfig({
          corpid: res.data?.corpId, // 必填，企业微信的corpid，必须与当前登录的企业一致
          agentid: res.data?.agentId, // 必填，企业微信的应用id （e.g. 1000247）
          timestamp: res.data?.permission?.timestamp, // 必填，生成签名的时间戳
          nonceStr: res.data?.permission?.nonceStr, // 必填，生成签名的随机串
          signature: res.data?.permission?.signature, // 必填，签名，见 附录-JS-SDK使用权限签名算法
          jsApiList: list, // 必填，需要使用的JS接口列表，凡是要调用的接口都需要传进来 ['hideOptionMenu']
          success: function (res) {
            console.log(res);
            // 回调
            checkAPI(list)
              .then(() => {
                resolve(true);
              })
              .catch(() => {
                reject();
              });
          },
          fail: function (res) {
            console.log(res);
            if (res.errMsg.indexOf("function not exist") > -1) {
              alert("版本过低请升级");
            }
            reject(res);
          },
        });
      })
      .catch((err) => {
        console.error("get config err", err);
        reject(err);
      });
  });
}

function checkAPI(jsApiList) {
  return new Promise((resolve, reject) => {
    wx.checkJsApi({
      jsApiList, // 需要检测的JS接口列表，所有JS接口列表见附录2,
      success: (res) => {
        // 以键值对的形式返回，可用的api值true，不可用为false
        // 如：{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
        console.log("checkAPI true", res);
        resolve(true);
      },
      fail: (res) => {
        console.log("checkAPI false", res);
        reject();
      },
    });
  });
}
